﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using Microsoft.Office.Interop.Word;
using Puzzler.Common;

namespace Puzzler.Plugin.Interface
{
    public abstract class PuzzleWordAddInHandler<TModel> : IPuzzleWordAddInHandler, IModelable<TModel> 
        where TModel : PuzzleModel
    {
        public TModel Model { get; private set; }

        protected PuzzleWordAddInHandler(TModel model)
        {
            Model = model;
        }

        public abstract void AddGameContent(Range range, IList<Canvas> images);
        public abstract void AddSolutionContent(Range range, IList<Canvas> images);

        #region Plugin Action

        public virtual void OnInitialized()
        {
        }

        public virtual void OnDone()
        {
        }

        public virtual void OnActivated()
        {
        }

        public virtual void OnDeactivated()
        {
        }

        #endregion
    }
}
